﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class forgetpassword : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            DBDataContext db = LINQUtil.GetDBWriteOnly();
            string userName = this.txtUserName.Text.Trim();
            var us = (from u in db.Users
                     join em in db.Employees on u.EmployeeID equals em.ID
                     where u.Status == 'A'
                     && em.Status == 'A'
                     && u.UserName == userName
                     select new
                     {
                         em.Email,
                         u.ID
                     }).FirstOrDefault();

            if (us != null)
            {
                if (string.IsNullOrEmpty(us.Email))
                {
                    JavascriptUtil.LoadMessage(UpdatePanel1, false, "User name vừa nhập không có email. vui lòng liên hệ admin");
                    return;
                }
                else
                {
                    string activationCode = "TD"+Utils.RandomString(6,true);
                    DateTime expireDate = DateTime.Now.AddDays(1);
                    var user = db.Users.FirstOrDefault<User>(a=>a.ID == us.ID);
                    user.ActivationCode = activationCode;
                    user.ActivationExpireDate = expireDate;
                    user.CreatedBy = "";
                    user.LastUpdatedBy = "";
                    user.CreatedDateTime = DateTime.Now;
                    user.LastUpdatedDateTime = DateTime.Now;
                    db.Update<User>(user);
                    db.SubmitChanges();

                    //Gui mail
                    string url = Request.Url.Authority + "/getpassword.aspx";
                    string content = "Vui lòng lick vào link (hoặc copy):<b> " + url + "</b> và nhập code: <b>" + activationCode + "</b> để lấy lại mật khẩu";
                    string MailTo = us.Email;
                    Utils.SendMail("Quen mat khau", content, MailTo,"");

                    JavascriptUtil.LoadMessage(UpdatePanel1, true, "Vui lòng kiểm tra mail để xem mật khẩu");
                    this.btnSave.Enabled = false;
                }
            }
            else
            {
                JavascriptUtil.LoadMessage(UpdatePanel1, false, "User name vừa nhập không tồn tại");
            }
        }
        catch (Exception ex)
        {
            JavascriptUtil.LoadMessage(UpdatePanel1, false, "Có lỗi xảy ra!");
            ControlUtil.LogError("-----------------------------");
            ControlUtil.LogError("forgetpassword-btnSave_Click");
            ControlUtil.LogError(ex.ToString());
            ControlUtil.LogError("-----------------------------");
        }
    }
}